#include <stdio.h>
#include<stdbool.h>
#include<stdlib.h>
#include<assert.h>
//typedef struct
//{
//    int* data;
//    int front;
//    int rear;
//    int k;
//} MyCircularQueue;
//
//
//
//
//MyCircularQueue* myCircularQueueCreate(int k)
//{
//    MyCircularQueue*ptr=(MyCircularQueue*)malloc(sizeof(MyCircularQueue));
//    ptr->data=(int *)malloc(sizeof(int)*(4+1));
//    ptr->front=0;
//    ptr->rear=0;
//    ptr->k=k;
//    return ptr;
//}
//bool myCircularQueueIsEmpty(MyCircularQueue* obj)//队列是否为空
//{
//    //队列一个数据也没有为真
//     return obj->front==obj->rear;
//}
//
//bool myCircularQueueIsFull(MyCircularQueue* obj)//循环队列是否满
//{
//    int next=obj->rear+1;
//    next%=obj->k+1;
//    return next==obj->front;
//
//}
//bool myCircularQueueEnQueue(MyCircularQueue* obj, int value)
//{
//    assert(obj);
//    if(myCircularQueueIsFull(obj))
//    {
//       return false;
//    }
//    obj->data[obj->rear]=value;
//    ++obj->rear;
//    obj->rear%=obj->k+1;
//    return true ;
//}
//
//bool myCircularQueueDeQueue(MyCircularQueue* obj)
//{
//     assert(obj);
//     if(myCircularQueueIsEmpty(obj))
//     {
//        return false;
//     }
//     ++obj->front;
//     obj->front%=(obj->k+1);
//     return true;
//}
//
//
//int myCircularQueueFront(MyCircularQueue* obj)
//{
//    assert(obj);
//    if(myCircularQueueIsEmpty(obj))
//    {
//        return -1;
//    }
//   return obj->data[obj->front];
//}
//
//
//int myCircularQueueRear(MyCircularQueue* obj)
//{
//    assert(obj);
//  if(myCircularQueueIsEmpty(obj))
//  {
//     return -1;
//  }
// int c = obj->rear-1;
// if(c<0)
// {
//     c=obj->k;
// }
//  return  obj->data[c];
//}
//void myCircularQueueFree(MyCircularQueue* obj)
//{
//    assert(obj);
//    free(obj->data);
//    obj->data=NULL;
//    free(obj);
//    obj=NULL;
//
//}
//
//int main()
//{
//
//    MyCircularQueue*ret=myCircularQueueCreate(5);
//
//    myCircularQueueEnQueue(ret,6);
//    myCircularQueueIsEmpty(ret);
//    myCircularQueueEnQueue(ret,1);
//    myCircularQueueEnQueue(ret,2);
//    int a  =myCircularQueueRear(ret);
//    myCircularQueueEnQueue(ret,7);
//    myCircularQueueEnQueue(ret,7);
//    a  =myCircularQueueRear(ret);
//    a  =myCircularQueueRear(ret);
//    myCircularQueueDeQueue(ret);
//    myCircularQueueEnQueue(ret,5);
//
//
//
//
//}
int main()
{
    int a=3,b=2;
    int *p;
    int *q;
    int *w;
    p=&a;
    q=&b;
    w=q;
    q=NULL;
    printf("%d",*w);
    return 0;
}